package com.quectel.core.module.partyeducationexam.dto.ref;

import com.quectel.core.module.partybuilding.dto.PartyPersonDto;
import com.quectel.core.module.partyeducationexam.dto.PartyEducationTrainingExamDto;
import com.quectel.core.module.partyeducationexam.dto.PartyEducationTrainingExamPersonHistoryDto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @author rananxin
 * @email ryan.ran@quectel.com
 * @date 2022/5/20 16:39
 */
@Data
@Schema
@EqualsAndHashCode(callSuper=true)
public class PersonRefExamDto extends PartyPersonDto implements Serializable {

    /**
     * 课时id
     */
    @Schema(description = "考试id")
    private Long examId;

    /**
     * 最近一次考试记录 id
     */
    @Schema(description = "最近一次考试记录 id")
    private Long lastExamId;

    /**
     * 考试次数
     */
    @Schema(description = "考试次数")
    private Integer takeCount;

    /**
     * 状态 0待阅卷 1已通过 2未通过
     */
    @Schema(description = "状态 0待阅卷 1已通过 2未通过")
    private Byte passStatus;

    /**
     * 最后一次考试分数
     */
    @Schema(description = "最后一次考试分数")
    private BigDecimal lastScore;

    /**
     * 最高一次考试分数
     */
    @Schema(description = "最高一次考试分数")
    private BigDecimal maxScore;

    /**
     * 参加状态 0 未考试 1 已考试
     */
    @Schema(description = "参加状态 0 未考试 1 已考试")
    private Byte takeStatus;

    /**
     * 培训开始时间
     */
    @Schema(description = "培训开始时间")
    private Date lastExamStartTime;

    /**
     * 培训结束时间
     */
    @Schema(description = "培训结束时间")
    private Date lastExamEndTime;
    /**
     * 课时名称
     */
    @Schema(description = "考试名称")
    private String examName;

    /**
     * 考试信息
     */
    @Schema(description = "考试信息")
    private PartyEducationTrainingExamDto exam;

    /**
     * 最近一次考试记录
     */
    @Schema(description = "最近一次考试记录")
    private PartyEducationTrainingExamPersonHistoryDto examPersonHistory;
}
